import { defineStore } from "pinia";
import { request } from "@/assets/js/axios";
export const useAppStore = defineStore({
  id: "app",
  state: () => {
    return {
      config: "app",
      name: "name",
      num: 1,
    };
  },
  actions: {
    // 设置数据
    setData(data: string): void {
      this.config = data;
    },
    // 请求数据
    getData(data: object): Promise<any> {
      // 请求链接
      let url: string = "/citylist/id/2";
      // 请求类型
      let type: string = "get";
      // 返回一个Promise对象，方便做业务层处理
      return new Promise(
        (resolve: (value: object) => void, reject: (value: object) => void) => {
          // 请求数据
          request(url, data, type)
            .then(({ data }) => {
              // 请求成功
              // 获取到的数据可以在这里处理
              // 也可以通过返回Promise，在业务层进行处理（推荐）
              resolve(data);
            })
            .catch((error) => {
              // 请求出错
              console.log("请求出错 error", error);
              reject(error);
            });
        }
      );
    },
  },
  // 开启数据缓存，数据默认存在 sessionStorage 里，并且会以 store 的 id 作为 key。
  persist: {
    enabled: true,
  },
});
